package com.nxn.core.dao;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * Extend this interface if you want typesafe (no casting necessary) DAO's for
 * your domain objects.
 * 
 * @author Michael
 * @param <T>
 *            a type variable
 * @param <PK>
 *            the primary key for that type
 */
public interface EntityDao<T, PK extends Serializable> extends GenericDao<T, PK> {

	public T get(PK id);

	public List<T> getAll();

	public boolean exists(PK id);

	public void remove(PK id);

	public List<T> findByProperty(String propertyName, Object value);

}